home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / ImageIcon.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  5.1 KB  |  218 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.MediaTracker;
  7. import java.awt.Toolkit;
  8. import java.awt.image.ColorModel;
  9. import java.awt.image.ImageObserver;
  10. import java.awt.image.MemoryImageSource;
  11. import java.awt.image.PixelGrabber;
  12. import java.io.IOException;
  13. import java.io.ObjectInputStream;
  14. import java.io.ObjectOutputStream;
  15. import java.io.Serializable;
  16. import java.net.URL;
  17.  
  18. public class ImageIcon implements Icon, Serializable {
  19.    transient Image image;
  20.    transient int loadStatus;
  21.    ImageObserver imageObserver;
  22.    String description;
  23.    protected static final Component component = new 1();
  24.    protected static final MediaTracker tracker;
  25.    int width;
  26.    int height;
  27.  
  28.    static {
  29.       tracker = new MediaTracker(component);
  30.    }
  31.  
  32.    public ImageIcon() {
  33.       this.loadStatus = 0;
  34.       this.description = null;
  35.       this.width = -1;
  36.       this.height = -1;
  37.    }
  38.  
  39.    public ImageIcon(Image var1) {
  40.       this.loadStatus = 0;
  41.       this.description = null;
  42.       this.width = -1;
  43.       this.height = -1;
  44.       this.image = var1;
  45.       Object var2 = var1.getProperty("comment", this.imageObserver);
  46.       if (var2 instanceof String) {
  47.          this.description = (String)var2;
  48.       }
  49.  
  50.       this.loadImage(var1);
  51.    }
  52.  
  53.    public ImageIcon(Image var1, String var2) {
  54.       this(var1);
  55.       this.description = var2;
  56.    }
  57.  
  58.    public ImageIcon(String var1) {
  59.       this(var1, var1);
  60.    }
  61.  
  62.    public ImageIcon(String var1, String var2) {
  63.       this.loadStatus = 0;
  64.       this.description = null;
  65.       this.width = -1;
  66.       this.height = -1;
  67.       this.image = Toolkit.getDefaultToolkit().getImage(var1);
  68.       this.description = var2;
  69.       this.loadImage(this.image);
  70.    }
  71.  
  72.    public ImageIcon(URL var1) {
  73.       this(var1, var1.toExternalForm());
  74.    }
  75.  
  76.    public ImageIcon(URL var1, String var2) {
  77.       this.loadStatus = 0;
  78.       this.description = null;
  79.       this.width = -1;
  80.       this.height = -1;
  81.       this.image = Toolkit.getDefaultToolkit().getImage(var1);
  82.       this.description = var2;
  83.       this.loadImage(this.image);
  84.    }
  85.  
  86.    public ImageIcon(byte[] var1) {
  87.       this.loadStatus = 0;
  88.       this.description = null;
  89.       this.width = -1;
  90.       this.height = -1;
  91.       this.image = Toolkit.getDefaultToolkit().createImage(var1);
  92.       if (this.image != null) {
  93.          Object var2 = this.image.getProperty("comment", this.imageObserver);
  94.          if (var2 instanceof String) {
  95.             this.description = (String)var2;
  96.          }
  97.  
  98.          this.loadImage(this.image);
  99.       }
  100.    }
  101.  
  102.    public ImageIcon(byte[] var1, String var2) {
  103.       this.loadStatus = 0;
  104.       this.description = null;
  105.       this.width = -1;
  106.       this.height = -1;
  107.       this.image = Toolkit.getDefaultToolkit().createImage(var1);
  108.       if (this.image != null) {
  109.          this.description = var2;
  110.          this.loadImage(this.image);
  111.       }
  112.    }
  113.  
  114.    public String getDescription() {
  115.       return this.description;
  116.    }
  117.  
  118.    public int getIconHeight() {
  119.       return this.height;
  120.    }
  121.  
  122.    public int getIconWidth() {
  123.       return this.width;
  124.    }
  125.  
  126.    public Image getImage() {
  127.       return this.image;
  128.    }
  129.  
  130.    public int getImageLoadStatus() {
  131.       return this.loadStatus;
  132.    }
  133.  
  134.    public ImageObserver getImageObserver() {
  135.       return this.imageObserver;
  136.    }
  137.  
  138.    protected void loadImage(Image var1) {
  139.       MediaTracker var2 = tracker;
  140.       synchronized(var2){}
  141.  
  142.       try {
  143.          tracker.addImage(var1, 0);
  144.  
  145.          try {
  146.             tracker.waitForID(0, 5000L);
  147.          } catch (InterruptedException var5) {
  148.             System.out.println("INTERRUPTED while loading Image");
  149.          }
  150.  
  151.          this.loadStatus = tracker.statusID(0, false);
  152.          tracker.removeImage(var1, 0);
  153.          this.width = var1.getWidth(this.imageObserver);
  154.          this.height = var1.getHeight(this.imageObserver);
  155.       } catch (Throwable var6) {
  156.          throw var6;
  157.       }
  158.  
  159.    }
  160.  
  161.    public synchronized void paintIcon(Component var1, Graphics var2, int var3, int var4) {
  162.       if (this.imageObserver == null) {
  163.          var2.drawImage(this.image, var3, var4, var1);
  164.       } else {
  165.          var2.drawImage(this.image, var3, var4, this.imageObserver);
  166.       }
  167.  
  168.    }
  169.  
  170.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  171.       var1.defaultReadObject();
  172.       int var2 = var1.readInt();
  173.       int var3 = var1.readInt();
  174.       int[] var4 = (int[])var1.readObject();
  175.       if (var4 != null) {
  176.          Toolkit var5 = Toolkit.getDefaultToolkit();
  177.          ColorModel var6 = ColorModel.getRGBdefault();
  178.          this.image = var5.createImage(new MemoryImageSource(var2, var3, var6, var4, 0, var2));
  179.       }
  180.  
  181.    }
  182.  
  183.    public void setDescription(String var1) {
  184.       this.description = var1;
  185.    }
  186.  
  187.    public void setImage(Image var1) {
  188.       this.image = var1;
  189.       this.loadImage(var1);
  190.    }
  191.  
  192.    public void setImageObserver(ImageObserver var1) {
  193.       this.imageObserver = var1;
  194.    }
  195.  
  196.    private void writeObject(ObjectOutputStream var1) throws IOException {
  197.       var1.defaultWriteObject();
  198.       int var2 = this.getIconWidth();
  199.       int var3 = this.getIconHeight();
  200.       int[] var4 = this.image != null ? new int[var2 * var3] : null;
  201.       if (this.image != null) {
  202.          try {
  203.             PixelGrabber var5 = new PixelGrabber(this.image, 0, 0, var2, var3, var4, 0, var2);
  204.             var5.grabPixels();
  205.             if ((var5.getStatus() & 128) != 0) {
  206.                throw new IOException("failed to load image contents");
  207.             }
  208.          } catch (InterruptedException var6) {
  209.             throw new IOException("image load interrupted");
  210.          }
  211.       }
  212.  
  213.       var1.writeInt(var2);
  214.       var1.writeInt(var3);
  215.       var1.writeObject(var4);
  216.    }
  217. }
  218.